The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not admitted to be prior art simply by inclusion in this section.
A computer network typically includes computer processors or “hosts” that host software applications that provide or request services, or both. The hosts may be network terminals or end stations that do not perform network traffic routing or forwarding functions. The hosts communicate with each other through network devices, also called intermediate devices, such as switches and routers, which do perform routing and forwarding functions. Some intermediate devices are themselves hosts for some routing or forwarding applications and services. The Internet Protocol (IP) is often used for sending packets of information between processes running on hosts on a network. As used hereinafter, a server refers to a server process that provides a service and a client refers to a client process that requests a service, unless otherwise indicated to refer to the host or device on which the process executes. According to the Internet Protocol (IP), different hosts have different logical addresses, called IP addresses, which are used by the intermediate devices to route and forward data packets from one host to another.
A local area network (LAN) connects hosts in a relatively small geographic area for sharing resources. Resources shared on the LAN often include data files, devices such as printers, and applications such as word processors. LAN protocols function at the level of the physical connection between devices on the LAN, and the data link between the connection and the operating system on a device. In contrast, IP functions at the level where client and server processes send or receive data directed to each other. Intermediate devices on LANs that forward packets on the basis of their built-in, media access control (MAC) addresses are called switches. Intermediate devices that forward packets on the basis of administratively assigned, topologically relevant, IP addresses are called routers.
After obtaining access to the network through a physical port, a host must be configured for network operations. For example, a newly added host is assigned a logical network address for itself, and a network address for the intermediate device that routes or forwards its traffic, among other configuration information. Configuring a host is a tedious process to perform manually.
The Dynamic Host Configuration Protocol (DHCP) provides a mechanism through which computers using IP can obtain network addresses and other configuration information automatically. DHCP is an open standard protocol for dynamic host configuration described in request for comments (RFC) documents numbered 2131 and 2132 available at the time of this writing as rfc2131.txt and rfc2132.txt, respectively, on the worldwide web (www) at domain and directory ietf.org/rfc. A DHCP server process operates on a DHCP server host that is conveniently located for several hosts, which hosts are on one or more local networks. One or more DHCP server hosts and processes are set up by a system administrator with information to configure the hosts on one or more local networks to reflect the current architecture of those local networks. A DHCP client process operates on each host of the local networks.
When a host begins operations on the local network, the DHCP client on that host requests configuration information from one of the DHCP servers. In response to the request from the DHCP client, one or more of the DHCP servers respond with configuration information to be used by the host of the DHCP client for a pre-determined period of time (“lease time”), including an IP address for the host of the DHCP client. Such responses take the form of “offers” of data. The DHCP client notifies the servers that one of the offers is accepted. The host that is executing the DHCP client then uses the configuration information including the address. The configuration information is bound to the particular DHCP client, and the binding is recorded by the DHCP server that offered it.
A DHCP relay agent is a process that executes on an intermediate device to forward DHCP messages between DHCP client and DHCP server. The DHCP relay agent facilitates communications with the DHCP client before the DHCP client's host is bound to a particular IP address. The DHCP relay agent is used when the DHCP client cannot broadcast directly to the DHCP server because it is separated from that DHCP server by network routing elements. In this case, the DHCP relay agent on the router closest to DHCP client receives a broadcast to port 67 and then forwards the DHCP client's packet to all DHCP servers for which the relay agent is configured. In this way, the DHCP client can broadcast locally and still make contact with one or more DHCP servers.
Each DHCP relay agent must be configured with the network addresses of one or more DHCP servers to which the DHCP relay agent forwards requests from DHCP clients. However, the current DHCP specification includes no mechanism for configuring DHCP relay agents with such addresses. A network administrator must manually configure a relay agent with the addresses of one or more DHCP servers.
Manual configuration involves: 1) determining network addresses of appropriate DHCP servers; 2) contacting the network device that hosts the relay agent, typically using a terminal interface over TELNET, or by a direct console connection to a port of the device; and 3) issuing one or more network operating system commands to store the IP addresses of one or more DHCP servers in a data structure on the host for the DHCP relay agent. The specific required operating system command often depends on the vendor or type of the network device that hosts the relay agent. The data structure may reside in the memory of the host for the relay agent and can be lost when that host loses power. Different vendor or types of network devices that implement relay agents often use different formats and names for the data structures that store the list of addresses of DHCP servers.
Thus, there are several disadvantages to manually configuring DHCP relay agents. For example, intermediate devices that host the relay agents may be of a variety of types or produced by a variety of vendors; consequently, the hosts for the relay agents may use a variety of operating systems. Therefore, the network administrator may have to use different commands to perform the same function on different intermediate devices. This renders configuring each device that hosts a relay agent a tedious and error prone task. Further, the network administrator may have to enter the same IP address for a DHCP server multiple times for multiple intermediate devices that host relay agents. This involves repeating those DHCP server addresses while configuring each intermediate device, rendering the configuration a repetitious and error prone task. Another disadvantage is that, in a large network, there may be a large number of hosts for relay agents. Therefore, the tedious and repetitious task must be performed a large number of times, increasing the chances for error.
Another disadvantage of manual configuration is excessive delays. When a new intermediate device that hosts a relay agent is connected to the network, the hosted relay agent is unable to perform as a relay agent until the data structure includes the list of DHCP servers. This delay between the time when the relay agent host is connected to the network and the time when the data structure includes the list of addresses for DHCP servers is termed “dead time.” When the set of DHCP servers changes, due to adding a new DHCP server or removing an existing DHCP server, the list of DHCP servers at a relay agent is out of date and should be revised. The relay agent may be unable to perform correctly until the data structure includes the revised list of DHCP servers. The delay between the time when the set of DHCP servers changes and the time when the data structure includes the correct list of addresses for DHCP servers is termed “revision time.” Using manual configuration of relay agents, the delays may be minutes or hours or even days, depending on the work load of the network administrator and the complexity of the network. It would be preferable were the delays to be only a few seconds.
Based on the foregoing, there is a clear need for techniques to configure relay agents that do not suffer the disadvantages of current techniques. In particular, there is a need for using DHCP messages to automatically configure DHCP relay agents.